package com.jy.wms.dao;


import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName: SysUserMapper.java
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @Author zzp
 * @Date Tue Aug 29 14:54:17 CST 2017
 */
public interface SysUserMapper extends BaseDao<SysUser> {

    /**
     * 插入一条记录（主表）
     * @param entity 实体对象
     * @param database 数据库名称
     * @return int
     */
    public Integer baseInsert(@Param("SysUser") SysUser entity, @Param("database") String database);

    /**
     * 插入一条记录（子表）
     * @param entity 实体对象
     * @param database 数据库名称
     * @return int
     */
    public Integer baseInsertcb(@Param("SysUser") SysUser entity, @Param("database") String database);

    /**
     * 插入一条记录（匹配有值的字段）
     * @param entity 实体对象
     * @param database 数据库名称
     * @return int
     */
    public Integer baseInsertSelective(@Param("SysUser") SysUser entity, @Param("database") String database);



    /**
     * 删除（根据ID 批量删除）
     * @param idList 主键ID列表
     * @param database 数据库名称
     * @return int
     */
    public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList, @Param("database") String database);


    /**
     * 分页查询 （超级管理员查询仓库）
     * @param entity 实体
     * @param database 数据库名称
     * @return List<SysUser>
     */
    public List<SysUser>  baseSelectPage(@Param("SysUser") SysUser entity, @Param("database") String database);

    /**
     * 分页查询 （仓管查询货主）
     * @param entity 实体
     * @param database 数据库名称
     * @return List<SysUser>
     */
    public List<SysUser>  ownerSelectPage(@Param("SysUser") SysUser entity, @Param("database") String database);


    /**
     * 查询（根据主键ID查询）
     * @param id 主键ID
     * @param database 数据库名称
     * @return User
     */
    public SysUser  baseSelectByPrimaryKey(@Param("id") String id, @Param("database") String database);

    /**
     * 查询（根据ID 批量查询）
     * @param idList 主键ID列表
     * @param database 数据库名称
     * @return list
     */
    public Integer baseSelectBathPrimaryKeys(@Param("list") List<SysUser> idList, @Param("database") String database);



    /**
     *修改 （匹配有值的字段）
     * @param entity 主键ID列表
     * @param database 数据库名称
     * @return int
     */
    public Integer baseUpdateByPrimaryKeySelective(@Param("SysUser") SysUser entity, @Param("database") String database);

    /**
     *修改（根据主键ID修改）
     * @param entity 主键ID列表
     * @param database 数据库名称
     * @return int
     */
    public Integer baseUpdateByPrimaryKey(@Param("SysUser") SysUser entity, @Param("database") String database);

    /**
     *激活  and  作废（根据主键ID修改）
     * @param id 主键ID列表
     * @param database 数据库名称
     * @return int
     */
    public Integer activation(@Param("list") String[] id, @Param("sfyx") String sfyx, @Param("database") String database);

    /**
     * 查询角色
     */
    public List<SysRole> jsSelectPage(@Param("SysRole") SysRole entity, @Param("database") String database);

    /**
     * 赋予角色
     */
    public Integer roolUrse(@Param("SysRoleUser") SysRoleUser sru, @Param("database") String database);

    /**
     * 修改密码
     */
    Integer modifyPassword(@Param("id") String id, @Param("mm") String mm, @Param("yz") String yz, @Param("database") String database);

    /**
     * 数据权限查询(货主)
     * 查询条件  sm
     */
    public List<WmsOwner>  roleSelect(@Param("mc") String mc, @Param("database") String database);

    /**
     * 数据权限查询(用户选中的货主)
     * 查询条件  sm
     */
    public List<String>  sfUser(@Param("yhid") String yhid, @Param("database") String database);

    /**
     * 数据权限查询(用户选中的供应商)
     * 查询条件  sm
     */
    public List<String>  gysUser(@Param("yhid") String yhid, @Param("database") String database);



    /**
     * 数据权限添加(货主)
     */

    public Integer roleAdd(@Param("list") List<WmsUserOwner> list, @Param("database") String database);

    /**
     * 数据权限查询(供应商)
     * 查询条件  sm
     */
    public List<WmsOwnerSupplier>  supplierSelect(@Param("WmsOwnerSupplier") WmsOwnerSupplier entity, @Param("database") String database);



    /**
     * 数据权限添加(供应商)
     */

    public Integer supplierAdd(@Param("WmsUserSupplier") WmsUserSupplier entity, @Param("database") String database);

    /**
     * 切换货主查询(货主)
     * 查询条件  sm
     *
     */
    public List<WmsUserOwner>  switchSelect(@Param("WmsUserOwner") WmsUserOwner entity, @Param("database") String database);

    /**
     * 根据id查询货主（根据主键ID查询）
     * @return User
     */
    public List<WmsOwner> switchSelectId(@Param("list") List<String> list);

    /**
     *  查询仓库
     * @param mc
     * @param database
     * @return
     */
    public List<WmsWarehouse> addSearchArea(@Param("mc") String mc, @Param("database") String database);

    /**
     * 查询货主
     * @param mc
     * @param database
     * @return
     */
    public List<WmsOwner> hzSearch(@Param("mc") String mc, @Param("database") String database);
    /**
     *  查询角色
     * @param mc
     * @param yhid
     * @param database
     * @return
     */
    public List<SysRole> addSearchJs(@Param("mc") String mc, @Param("yhid") String yhid, @Param("database") String database);

    /**
     * 查询供应商
     * @param mc
     * @param database
     * @return
     */
    public List<WmsOwnerSupplier> addSearchGys(@Param("mc") String mc, @Param("database") String database);

    /**
     * 重置密码
     */
    Integer resetpassword(@Param("array") String[] id, @Param("database") String database);

    /**
     * 根据用户ｉｄ查询是角色
     */
    public SysRoleUser jsSelectId(@Param("id") String id, @Param("database") String database);
    /**
     * 删除用户角色（根据主键ID删除）
     * @param id 主键
     * @param database 数据库名称
     * @return int
     */
    public Integer baseDeleteByPrimaryKey(@Param("id") String id, @Param("database") String database);


    /**
     * 根据货主id
     */
    public List<String> hzSelectId(@Param("ckid") String ckid);
    /**
     * 删除用户货主（根据主键ID删除）
     * @param id 主键
     * @param database 数据库名称
     * @return int
     */
    public Integer hzDeleteByPrimaryKey(@Param("id") String id, @Param("database") String database);

    /**
     * 根据用户ｉｄ查询供应商
     */
    public WmsUserSupplier gysSelectId(@Param("id") String id, @Param("database") String database);
    /**
     * 删除用户供应商（根据主键ID删除）
     * @param id 主键
     * @param database 数据库名称
     * @return int
     */
    public Integer gysDeleteByPrimaryKey(@Param("id") String id, @Param("database") String database);

    /**
     * 根据id 查询仓库名称
     */
    public WmsWarehouse searchArea(@Param("id") String id, @Param("database") String database);

    /**
     * 根据用户用户id查询角色
     */
    public List<String> jsUser(@Param("yhid") String yhid, @Param("database") String database);

    /**
     * 根据id查询盐值
     */
    public SysUser idYz(@Param("array") String[] id, @Param("database") String database);

    /**
     *dlm不能相同
     */
    public Integer getcount(@Param("dlm") String dlm, @Param("database") String datebase);

    /**
     * 查询字典
     * @param d_type
     * @param d_value
     * @param database
     * @return
     */
    public SysDictionary baseSelectByType(@Param("d_type") String d_type, @Param("d_value") String d_value, @Param("database") String database);

}
